#ifndef __BSP_SRAM_H
#define __BSP_SRAM_H



#include <stdint.h>  // 提供uint32_t等类型定义


#define EXTERNAL_SRAM_BASE 0x60000000U  // FMC Bank1基地址（NE1片选，固定映射）
#define BUFFER_SIZE       256U         // 环形缓冲区容量（float数量，≤ SRAM剩余空间）
#define BUFFER_OFFSET     0x0000U       // 缓冲区在SRAM中的偏移（避免地址冲突）


typedef struct {  
    float *buffer;      // 指向外部SRAM的缓冲区  
    uint32_t pW;        // 写指针（无符号整数防止溢出）  
    uint32_t pR;        // 读指针  
} circular_buffer;


void init_circular_buffer(circular_buffer *cb);
void push_circular_buffer(circular_buffer *cb, float data);
float pop_circular_buffer(circular_buffer *cb);




#endif
